Software Engineering II

Course Code
τεχ-λογ-2
ECTS Credits
5
Semester
8th Semester
Course Category

Specialization courses

Specialization courses

Specialization
Specialization elective courses on Informatics
Course Description
COURSE CONTENTS

Course contents:

1. Overview of the object-oriented features of modern programming languages
(a) classes / abstract classes / interfaces
(b) Extension Methods 
(c) Anonymous Methods / Lambda Expressions
(d) Delegates / functional interfaces / Events 
(e) Generics

2. The agile methodology and the iterative development paradigm
(a) Requirements phase
(b) Design phase
(c) Implementation phase

3. GRASP and SOLID principles:
(a) GRASP principles: Information Expert, Creator, Low Coupling, Protected Variations, Indirection, Polymorphism, High Cohesion, Pure Fabrication, Controller 
(b) SOLID principles: S - Single-responsibility Principle, O - Open-closed Principle, L - Liskov Substitution Principle, I - Interface Segregation Principle, D - Dependency Inversion Principle

4. Design patterns - Gang Of Four Patterns
(a) Creation patterns (Abstract Factory, Builder, Factory Method, Prototype, Singleton)
(b) Structural patterns (Adapter, Bridge, Composite, Decorator, Façade, Flyweight, Proxy)
(c) Behavioral patterns (Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State , Template Method, Visitor)

ASSESSMENT

Assessment: Compulsory final project with weight 60%-70%. Lab exercises with weight 30%-40%.